<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@page import="de.laures.cewolf.ChartPostProcessor"%>
<%@page import="java.awt.*" %>
<%@page import="java.util.*"%>
<%@page import="de.laures.cewolf.*"%>
<%@page import="de.laures.cewolf.cpp.*"%>
<%@page import="de.laures.cewolf.example.*"%>
<%@page import="de.laures.cewolf.links.*"%>
<%@page import="de.laures.cewolf.taglib.CewolfChartFactory" %>
<%@page import="de.laures.cewolf.tooltips.*"%>
<%@page import="org.jfree.chart.*"%>
<%@page import="org.jfree.chart.event.ChartProgressEvent" %>
<%@page import="org.jfree.chart.event.ChartProgressListener" %>
<%@page import="org.jfree.chart.plot.*"%>
<%@page import="org.jfree.data.*"%>
<%@page import="org.jfree.data.category.*"%>
<%@page import="org.jfree.data.gantt.*"%>
<%@page import="org.jfree.data.general.*"%>
<%@page import="org.jfree.data.time.*"%>
<%@page import="org.jfree.data.xy.*"%>
<%@taglib uri="http://cewolf.sourceforge.net/taglib/cewolf.tld" prefix="cewolf" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
<script type="text/javascript" src="js/global.js"></script>
<script type="text/javascript" src="js/tooltip.js"></script>
<link type="text/css" href="style/cewolf.css" rel="stylesheet">
</head>
<body>
<jsp:useBean id="pageViews" class="de.laures.cewolf.example.LineData"/>
<%
DatasetProducer categoryData = new DatasetProducer() {
    public Object produceDataset(Map params) {
      final String[] categories = { "apples", "pies", "bananas", "oranges" };
      final String[] seriesNames = { "Peter", "Helga", "Franz", "Olga" };
      final Integer[][] startValues = new Integer[seriesNames.length][categories.length];
      final Integer[][] endValues = new Integer[seriesNames.length][categories.length];
      for (int series = 0; series < seriesNames.length; series++) {
        for (int i = 0; i < categories.length; i++) {
          int y = (int) (Math.random() * 10 + 1);
          startValues[series][i] = new Integer(y);
          endValues[series][i] = new Integer(y + (int) (Math.random() * 10));
        }
      }
      DefaultIntervalCategoryDataset ds = new DefaultIntervalCategoryDataset(seriesNames, categories, startValues, endValues);
      return ds;
    }
    public String getProducerId() {
      return "CategoryDataProducer";
    }
    public boolean hasExpired(Map params, Date since) {
      return false;
    }
  };
  pageContext.setAttribute("categoryData", categoryData);
  
  DatasetProducer xyData = new DatasetProducer() {
	    public Object produceDataset(Map params) {
	      XYSeries xys = new XYSeries("Example XY Dataset");
	      double last = 0.0;
	      for (int i = -50; i <= 50; i++) {
	        double y = last + ((Math.random() * 100) - 50.0);
	        xys.add((double) i, y);
	        last = y;
	      }
	      return new XYSeriesCollection(xys);
	    }
	    public String getProducerId() {
	      return "XYDataProducer";
	    }
	    public boolean hasExpired(Map params, Date since) {
	      return false;
	    }
	  };
	  pageContext.setAttribute("xyData", xyData);
%>
<jsp:useBean id="lineRenderer" class="de.laures.cewolf.cpp.LineRendererProcessor" />
<jsp:useBean id="lineRenderer2" class="de.laures.cewolf.cpp.LineRendererProcessor" />
<jsp:useBean id="seriesPaint" class="de.laures.cewolf.cpp.SeriesPaintProcessor" />

<jsp:useBean id="dateAxisProcessor" class="de.laures.cewolf.cpp.DateAxisProcessor" />

<div>
<cewolf:chart id="XYChart" title="XY" type="xy" xaxislabel="x-values" yaxislabel="y-values">
    <cewolf:data>
        <cewolf:producer id="xyData" />
    </cewolf:data>
</cewolf:chart>
<cewolf:img chartid="XYChart" renderer="/cewolf" width="800" height="400">
</cewolf:img>
</div>

<div>
<cewolf:chart id="timeChart" title="TimeSeries" type="timeseries" >
    <cewolf:data>
        <cewolf:producer id="pageViews" />
    </cewolf:data>
    <cewolf:chartpostprocessor id="lineRenderer2">
		<cewolf:param name="shapes" value="true" />
		<cewolf:param name="width" value="1.5" />
	</cewolf:chartpostprocessor>
	
	    <cewolf:chartpostprocessor id="dateAxisProcessor">
	    <cewolf:param name="type" value="domain"/>
        <cewolf:param name="format" value="yyyy-MM"/>
        <cewolf:param name="tickUnit" value="MONTH"/>
        <cewolf:param name="tickStep" value="1"/>
        </cewolf:chartpostprocessor>
</cewolf:chart>
<cewolf:img chartid="timeChart" renderer="/cewolf" width="800" height="400" >
	<cewolf:map linkgeneratorid="pageViews" tooltipgeneratorid="pageViews"/>
</cewolf:img>
</div>
<div>

<cewolf:chart id="lineChart" title="LineChart" type="line" xaxislabel="Fruit" yaxislabel="favorite">
    <cewolf:data>
        <cewolf:producer id="categoryData" />
    </cewolf:data>
    
    <cewolf:chartpostprocessor id="lineRenderer">
		<cewolf:param name="shapesSize" value="6" />
		<cewolf:param name="sameShape" value="true" />
		<cewolf:param name="shapes" value="true" />
		<cewolf:param name="width" value="1.5" />
	</cewolf:chartpostprocessor>
	
	<cewolf:chartpostprocessor id="seriesPaint">
        <cewolf:param name="0" value="#FFFFAA"/>
    </cewolf:chartpostprocessor>
</cewolf:chart>
<cewolf:img chartid="lineChart" renderer="/cewolf" width="800" height="400"/>

</div>
</body>
</html>